Embodiments of the present invention relate to a method and apparatus for detecting strobe errors. In particular, the present invention relates to a method and apparatus for detecting errors in a strobe received from a sending agent.
Computer systems may contain multiple agents that work together to perform tasks. For example, a computer system may contain multiple processors that may share system resources (e.g., input devices or memory devices) and may perform parallel processing. In many systems, messages are sent between system agents over a bus. Such a bus may include, for example, data bits, clock bits, parity bits, and reference bits. A sending agent may send data over the bus to a receiving agent.
In some systems, the bus includes one or more strobe bits that are used to trigger the capture of data sent over the bus. For example, a sending agent may send a strobe signal over the bus along with the data sent. A receiving agent may receive the data and the strobe signal, and the receiving agent may use the strobe signal to capture the data sent. In this case, the bus may be referred to as xe2x80x9csource-synchronousxe2x80x9d because it uses a strobe signal from the sending agent (i.e., the source) as a clock.
Busses that interconnect system components are subject to errors. A bus error has occurred if the correct logical information is not transferred over the bus. Bus errors may be caused by factors such as, for example, device failures, device marginality, power supply noise, poor continuity, external radiation, cosmic rays, or other noise. A bus error may be referred to as a xe2x80x9cglitch.xe2x80x9d Bus errors may occur in any of the information being transferred on the bus, such as the data bits, reference bits, and/or strobe bits. Examples of strobe errors include a missing strobe pulse, an extra strobe pulse, and a timing change in the strobe pulse (i.e., a xe2x80x9cjitteredxe2x80x9d strobe).
A strobe error may cause a receiving agent to improperly capture the data that is being sent. For example, the receiving agent may miss the data or may capture the data twice. While methods such as error correcting codes or parity codes may be used to correct errors in the data bits being transferred over the bus, such methods may not be useful in correcting an error in a strobe signal that is transferred over the bus.